package com.erp.gather.service;

import com.erp.gather.domain.ErpCollectProductOptimize;
import com.erp.gather.domain.bo.ErpCollectProductOptimizeBo;
import com.erp.gather.domain.vo.ErpCollectProductOptimizeVo;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.web.oldPage.TableDataInfo;

import java.util.Collection;
import java.util.List;
import java.util.Map;

/**
 * 采集商品优化Service接口
 *
 * @author erp
 * @date 2023-03-28
 */
public interface IErpCollectProductOptimizeService {

    TableDataInfo<ErpCollectProductOptimizeVo> queryPageList(ErpCollectProductOptimizeBo bo, PageQuery pageQuery);

    ErpCollectProductOptimizeVo queryById(Long id);

    Boolean insertByBo(ErpCollectProductOptimizeBo bo);

    Boolean updateByBo(ErpCollectProductOptimizeBo bo);

    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);

    R<Object> batchOptimization(List<String> list);

    void copyCollectProductPic(Long oldCollectId, Long newCollectId);

    R<Object> makeProductNotOptimize(Long collectProductId);

    void change();

    List<ErpCollectProductOptimizeVo> queryList(ErpCollectProductOptimizeBo erpCollectProductOptimizeBo);

    R<Object> addOptimizePic(List<ErpCollectProductOptimize> jsonArray, String type, String collectProductId, Integer isSave);

    R<Map<String, Object>> getOptimizePicByCollectProductId(Long collectProductId, Integer type);

    R<Object> processingProductsWithUpdatedImages();
}
